package java0518;

// 牛客网 : 不用加减乘除做加法
public class Solution {
    public int Add(int num1,int num2) {
        // 思路为, 先将num1和num2不进位的结果求出, 这一步可以通过^直接求出
        // 再将num1和num2的进位信息求出, 这个可以通过 (num1 & num2) << 1 求出
        // 再将这两个结果加起来, 递归调用Add即可
        // 递归结束条件如下三个if
        if (num1 == 0 && num2 == 0) {
            return 0;
        }
        if (num1 == 0) {
            return num2;
        }
        if (num2 == 0) {
            return num1;
        }
        return Add(num1^num2, (num1 & num2) << 1);
    }
}